ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド
リリース6.0
B25770-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

ALTER TABLE

ALTER TABLE文は、既存の表への列または外部キーの追加および削除、既存の表のハッシュ索引のサイズ変更、列のデフォルト値の変更、または列の一意制約の削除や追加を実行します。

アクセス制御

TimesTenインスタンスでアクセス制御が有効な場合、この文にはDDL権限が必要です。

SQL構文

列を追加する場合、ALTER TABLE文の構文は次のとおりです。

ALTER TABLE [Owner.]TableName
ADD [COLUMN] ColumnName ColumnDataType [INLINE | NOT INLINE]

または

ALTER TABLE [Owner.]TableName ADD
(ColumnName ColumnDataType [INLINE | NOT INLINE] [, ... ] )

列を削除する場合、ALTER TABLE文の構文は次のとおりです。

ALTER TABLE [Owner.]TableName
DROP [COLUMN] ColumnName

または

ALTER TABLE [Owner.]TableName DROP
(ColumnName [, ... ] )

外部キーを追加する場合、ALTER TABLE文の構文は次のとおりです。

ALTER TABLE [Owner.]TableName
ADD [CONSTRAINT ForeignKeyName] FOREIGN KEY
(ColumnName [,...])

REFERENCES RefTableName [(ColumnName [,...])]

外部キーを削除する場合、ALTER TABLE文の構文は次のとおりです。

ALTER TABLE [Owner.]TableName
DROP CONSTRAINT ForeignKeyName

ハッシュ索引のサイズを変更する場合、ALTER TABLE文の構文は次のとおりです。

ALTER TABLE [Owner.]TableName
SET PAGES = RowPages | CURRENT

列のデフォルト値を変更する場合、ALTER TABLE文の構文は次のとおりです。

ALTER TABLE [Owner.]TableName
MODIFY (ColumnName DEFAULT DefaultVal)

列の一意制約を追加または削除する場合、ALTER TABLE文の構文は次のとおりです。

ALTER TABLE Owner.]TableName
{ADD | DROP} UNIQUE ( ColumnName )

NULL値可能な列のデフォルト値をNULLに変更することによって削除する場合、ALTER TABLE文の構文は次のとおりです。

ALTER TABLE [Owner.]TableName
MODIFY (ColumnName DEFAULT NULL)

パラメータ

ALTER TABLE文には、次のパラメータがあります。

[Owner.]TableName
変更する表を指定します。
UNIQUE
列ColumnNameの各行の値が一意である必要があることを示します。
MODIFY
指定した列の属性を新しい値に変更します。
DEFAULT [DefaultVal | NULL]
列のデフォルト値(DefaultVal)を指定します。NULLを指定すると、列のデフォルト値が削除されます。デフォルト値にSYSDATEを指定した列を追加すると、既存の行の列の値のみが、列が追加された時点のシステム日付になります。デフォルト値がUSER関数の1つである場合、列の値はALTER TABLE文を実行したセッションのユーザーの値になります。
列のデフォルト値を変更しても、既存の行は変更されません。
ColumnName
UNIQUE CONSTRAINTまたはデフォルト値が変更される列の名前です。新しい列に、既存の列名または別の新しい列名を指定することはできません。
ColumnDataType
追加する列のデータ型です。追加のパラメータが必要なデータ型もあります。指定できるデータ型の詳細は、「データ型」を参照してください。
INLINE /
NOT INLINE
デフォルトでは、宣言された列の長さが128バイトより大きい可変長の列は表外に保存されます。宣言された列の長さが128バイト以下の可変長の列は、表内に保存されます。INLINEおよびNOT INLINEキーワードを使用すると、表を作成するときのデフォルトの動作を無効にすることができます。
CONSTRAINT
削除する外部キーを指定します。オプションで、追加された外部キーの名前をユーザーが指定するように指定します。
ForeignKeyName
追加または削除する外部キーの名前です。すべての外部キーは、ユーザーが名前を指定しなかった場合、デフォルトの名前が割り当てられます。ユーザーが指定した名前またはシステムの名前のいずれかをDROP FOREIGN KEYコマンドで指定できます。
FOREIGN KEY
外部キーを追加または削除するよう指定します。「FOREIGN KEY」を参照してください。
REFERENCES
外部キーが別の表を参照するように指定します。
RefTableName
外部キーが参照する表の名前です。
SET PAGES
表の行ページに想定される数に基づいてハッシュ索引のサイズを変更します。各行ページのデータの行数は、最大256です。この数によって、ハッシュ索引に対して作成されるハッシュ・バケットの数が決まります。最小値は1で、最大値は268435456/256(2^28/256)です。推定した数が小さすぎると、パフォーマンスが悪化します。定数(RowPages)または現在の行ページの数を指定できます。ハッシュ索引とページの詳細は、「列定義」を参照してください。
RowPages
想定される行ページの数です。
CURRENT
現在使用されている行ページの数を使用します。

説明
· マテリアライズド・ビューから参照されている列は削除できません。
· 新しい列に対してデフォルト値が指定されている場合を除き、追加されるすべての列の初期値はNULLです。
例13.15

列ReturnRateを表Partsに追加します。

ALTER TABLE Parts ADD COLUMN ReturnRate DOUBLE; 
例13.16

列NumAssignとPrevDeptを表Contractorに追加します。

ALTER TABLE Contractor 
ADD ( NumAssign INTEGER, PrevDept CHAR(30) ); 
例13.17

表Employeeの列Addr1とAddr2を削除します。

ALTER TABLE Employee DROP ( Addr1, Addr2 ); 
例13.18

次の文では、表BooksのUNIQUEのTitle列を削除します。

ALTER TABLE Books DROP UNIQUE (Title); 
例13.19

次の文では、デフォルト値5を使用して列x1を表T1に追加します。

ALTER TABLE T1 ADD (x1 INT DEFAULT 5); 
例13.20

次の文では、列のデフォルト値x1を2に変更します。

ALTER TABLE T1 MODIFY (x1 DEFAULT 2); 
関連項目

CREATE TABLE
DROP TABLE